/*
 * Created by LiuYou on 2020/12/17.
 *
 */

#ifndef EFFECTIVE_CPP_2_NOTEBOOK_HPP
#define EFFECTIVE_CPP_2_NOTEBOOK_HPP

#include <memory>

namespace NoteBook {
    namespace Display {
        class Display;
    }
    namespace GraphicsCard {
        class GraphicsCard;
    }
    class NoteBook {
    public:
        NoteBook(std::shared_ptr<Display::Display> display,
                 std::shared_ptr<GraphicsCard::GraphicsCard> graphicsCard);

        virtual ~NoteBook();

        const std::shared_ptr<Display::Display>& getDisplay() const;

        const std::shared_ptr<GraphicsCard::GraphicsCard>& getGraphicsCard() const;

    private:
        std::shared_ptr<Display::Display> display;
        std::shared_ptr<GraphicsCard::GraphicsCard> graphicsCard;

    };

}


#endif //EFFECTIVE_CPP_2_NOTEBOOK_HPP
